package cn.biplam.front.template.control.rfFlowTable.callback.action;

import cn.biplam.common.wrapper.Result;
import cn.biplam.front.htmlscript.script.AjxScript.Level;

/**
 *  创建Ajx提交脚本的回调类
 *  
 * @author XiaoRuxing Nov 6, 200910:58:30 AM
 * @version 1.0
 */
public class ActionCallbackBase extends ActionCallback{

	/**
	 * 创建提交脚本类
	 * @param actionId 动作ID
	 */
	public ActionCallbackBase(String actionId){
		this.setActionId(actionId);
	}

	/**
	 *  设置ajx提交动作类型为A的脚本回调器
	 */
	public void setActionA(){
		this.setType(Callback_Action_Type.A);
	}

	/**
	 *  设置ajx提交动作类型为M的脚本回调器
	 * @param targetId 刷新目标容器ID
	 */
	public void setActionM(String targetId){
		this.setType(Callback_Action_Type.M);
		this.setTarget(targetId);
	}

	/**
	 *  设置ajx提交动作类型为P的脚本回调器
	 * @param targetLevel 弹出窗口层级
	 */
	public void setActionP(Level targetLevel){
		this.setType(Callback_Action_Type.P);
		this.setTarget(targetLevel.toString());
	}

	/**
	 *  设置ajx提交动作类型为Pr的脚本回调器
	 * @param sOtherContainer 附加提交容器ID(可以为空)
	 */
	public void setActionPr(String sOtherContainer){
		this.setType(Callback_Action_Type.Pr);
		if(sOtherContainer!=null)
			this.setOtherContainer(sOtherContainer);
	}

	/**
	 *  设置ajx提交动作类型为Pr的脚本回调器,无提交附加参数
	 */
	public void setActionPr(){
		this.setActionPr(null);
	}
	
	/**
	 *  设置ajx提交动作类型为Pv的脚本回调器
	 *  @param sOtherContainer 附加提交容器ID(可以为空)
	 */
	public void setActionPv(String sOtherContainer){
		this.setType(Callback_Action_Type.Pv);
		if(sOtherContainer!=null){
			this.setOtherContainer(sOtherContainer);
		}
	}
	
	/**
	 *  设置ajx提交动作类型为Pv的脚本回调器,无提交附加参数时使用
	 */
	public void setActionPv(){
		this.setActionPv(null);
	}

	/**
	 *  设置ajx提交动作类型为Sp的脚本回调器,无提交附加参数
	 */
	public void setActionSp(){
		this.setType(Callback_Action_Type.Sp);
	}
	
	/**
	 *  设置ajx提交动作类型为Sp时的附加参数提交
	 * @param otherParams 附加提交参数
	 */
	public void setActionSp(String...otherParams){
		this.setType(Callback_Action_Type.Sp);
		this.setAddParams(otherParams);
	}

	/**
	 * @deprecated 用于FlowTable内部调用
	 */
	@Override
	public void process(Result result) {}

	/**
	 * @deprecated 用于自定义脚本模式
	 */
	@Override
	public String getCustomerScript(Result result, String rowRecordId) {return null;}
}
